<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>

// 回调函数 callback  cb
// 把函数作为参数传到另一个函数内部调用，该函数我们称为回调函数
// function fn1(callback){
//     var num = 123;
//     console.log( 'fn1被调用。。。' );

//     // fn1完成某些工作之后再调用回调函数
//     callback(num,fn3);// fn2(num)
// }
// function fn2(a,cb){// 回调函数 callback
//     console.log( 'fn2回调函数调用。。。',a);
//     cb(a);// fn3(a)
// }
// function fn3(b){// 回调函数 callback
//     console.log( 'fn3回调函数调用。。。',b);
// }
// fn1(fn2);


function f1(cb){
    console.log( 'f1调用。。。' );
    console.log( cb );
}
f1(123);// cb = 123
f1([1,2,3]);// cb = [1,2,3]
// f1(function (){console.log( 'f2调用。。。' )}); // cb = function (){console.log( 'f2调用。。。' )}
f1(f2);// 将f2作为实参传递到f1内部  cb = f2
function f2(){// 回调函数
    console.log( 'f2调用。。。' );
    console.log( 'f2调用。。。' );
    console.log( 'f2调用。。。' );
    console.log( 'f2调用。。。' );
}

</script>
</body>
</html>